iT邦幫忙

2022 iThome 鐵人賽

DAY 2
2
Modern Web

資料庫也有版本控制系列 第 2

Day 2 : 應用程式的版本控制與自動化部屬流程

  • 分享至 

  • xImage
  •  

一、版本控制介紹

-> 1. Day 2 : 應用程式的版本控制與自動化部屬流程
2. Day 3 : 資料庫版控的原理與方法
3. Day 4 : 資料庫的版本控制與自動化部屬流程


在應用程式的開發中,我們會使用 git 這套工具來進行版本的紀錄,當我們進行到一個進度時我們會執行 git commit 來留下一個紀錄點紀錄當下的程式碼狀態,這相當於玩遊戲時進行了存檔,而也會使用 git branch 開立新的分支來獨立開發某項功能,這相當於玩遊戲時開多個存擋來嘗試不同的玩法,這樣的做法帶來了很多的彈性與多人協作的可能性

當我們開發完程式也紀錄好了 commit,接下來就會丟上 github、gitlab 這類的託管平台,並且透過平台本身的部署工具或是 jenkins、Drone 這類的 CI/CD 工具來完成自動化的編譯與部署甚至是在這其中進行單元測試確保品質的流程

通過以上的敘述與工具,我們現在對應用程式有了成熟的版本控制、程式碼管理、自動化的測試與部署,但我們漏掉了一個在網頁應用中的重要元素,也就是拿來保存資料的資料庫,這在剛才的敘述中屬於外部的服務,我們光改動在應用程式中對資料庫操作的 DAO 介面是無法實際影響資料庫的,在本地的開發中我們很可能直接開啟了資料庫的管理工具,如 dbeaver、datagrip 這類的 GUI 資料庫管理工具的圖形化介面直接修改本機上的資料庫來運行程式碼,這樣的做法可以在本地端順利開發功能,但如果沒有將變更同步到線上環境,將會導致應用程式找到指定的欄位而報錯

為了解決這樣資料庫與應用程式之間相依性的問題,我們會需要將程式開發已經很成熟的這一套方案帶來資料庫上,落實資料庫的版本控制以防在開發的過程中發生程式與資料結構不一至造成的問題

而最大的問題在於應用程式是沒有狀態的,所以可以輕鬆的做升/降級與負載平衡,但資料庫本身是有狀態的,他裡面裝載的應用程式取用的資料與結構,因此我們會在後續的篇章介紹如何做到這些事情,與需要哪一些人力與程式上結構調整來達到這樣的目的


後續預告

這是版本控制篇章的第一天,明日將會進行介紹資料庫版控的原理與方法,會分享幾種團隊中可以實現的資料庫版本控制方法與他們的優缺點


上一篇
Day 1 : 為什麼需要幫資料庫做版本控制
下一篇
Day 3 : 資料庫版控的原理與方法
系列文
資料庫也有版本控制30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言